《高性能網站建設指南》閱讀筆記_規則14- 使Ajax可緩存
發布時間:2013-11-22 瀏覽:304打印字號:大中小
簡單的額說就是使用之前的規則應用于Ajax請求。
很多時候我們會發現,當發起主動Ajax請求時,可能需要等待。改善這些主動Ajax請求的最重要的方式就是使響應可緩存。此外前面提到的規則中,規則4壓縮組件,規則9減少DNS查找,規則10精簡javascript,規則11避免重定向,規則13配置與禁用ETag。
因為規則3使用緩存最重要,所以這里只介紹這一點
書中給的一個例子是雅虎郵箱的,用戶如果查看沒有將正文下載到本地的郵件,就會產生一個主動的ajax請求。但是如果關閉了這個網站之后又回來,就會發送相同的請求。因為之前的ajax響應并沒有保存在瀏覽器緩存中。沒有被緩存的原因是有一個值為no-store的Cache-Control頭以及一個日期為過去的Expires頭,這些都告訴瀏覽器不要緩存。如果能使用一個長久的Expires頭替換這些頭就會緩存。但是一般認為:這應該是一個動態生成的響應只包含這個世界上的一個用戶的相關信息,緩存這些東西似乎是沒有意義的。作者認為,一個用戶可能在一天或一周中多次查看這個郵件,如果緩存了響應,就會看到緩慢的和快速的用戶體驗的差距。
當然,是這些ajax請求可緩存,除了改變HTTP頭之外還需要更多的工作,響應的個性化和動態本質必須反映到緩存中,可以采用的最好方式是使用查詢字符串參數。例如這個響應只對當前用戶有效可以將用戶名放到查詢字符串中做到這一點,還有一點是要反映出確認的信息,如具體的哪一封郵件的緩存,可以使用郵件的唯一ID。